home *** CD-ROM | disk | FTP | other *** search
- SEA Technical Memorandum #0207, SEAdog 4.50; Chat Session Protocol
- Last updated: December 8, 1988
- Copyright 1988 by System Enhancement Associates, Inc.
-
-
-
- SEAdog 4.50
-
- Chat Session Protocol
-
-
- This document describes the protocol used in a "chat session" as
- implemented in version 4.50 of the SEAdog mail system.
-
- The chat session protocol makes extensive use of a "string transmit"
- function, which is identical to that used by the file request mechanism.
- The transmitter first sends a "signal byte" indicating what sort of string
- is being sent. This is then followed by the actual string, which is
- terminated with an ETX (hex value 03h), followed by a two-byte CRC of the
- string characters (everything after the initial signal character and before
- the ETX). The CRC is sent high byte first, then low byte. The string
- receiver responds with an ACK (hex value 06h) if the string was received
- correctly, or a NAK (hex value 15h) if it was not.
-
-
- A chat session begins with a chat initiation request. During this phase
- the two systems involved have different roles, and it is important to keep
- in mind who is doing what. We will distinguish the two systems by
- referring to the system that placed the call as the "swooner", and the
- system that answered as the "swain". With that in mind, a chat session is
- initiated as follows:
-
- 1) The swooner places a call to the swain. On getting carrier he whacks
- return and they match baud rates.
-
- 2) Instead of sending a TSYNC for a mail session, he sends an AHOY (hex
- value 0EAh) to request a chat session.
-
- 3) If the swain is unwilling to engage in a chat session, she responds
- with a CAN (hex value 18h). Otherwise she responds with another AHOY,
- followed by an ENQ (hex value 05h) to request the swooner's name.
-
- 4) The swooner responds to the ENQ by transmitting an identifying string
- (such as his name) with a signal of SOH (hex value 01h).
-
- 5) Once the swain has properly received and acknowledged the string, she
- pauses to tell anyone at the console who is calling and asks if they
- wish to chat. If they say "no" (or fail to answer in thirty seconds),
- the swain transmits a CAN (hex value 18h) and ends negotiation.
-
- 6) Meanwhile, the swooner has been impatiently sending ENQ after ENQ (hex
- value 05h). If a human operator accepts chat, the swain finally
- responds to the ENQ by transmitting her own identifying string with a
- signal of SOH (hex value 01h). Once this has been acknowledged by the
- swooner they proceed with the chat session.
-
-
- Once a chat session is underway, the strings being transmitted back and
- forth will always take the form:
-
- signal ASCII SOH (hex value 01h)
- block# One character block number, in the range of space to tilde
- type Block type (see below)
- data Data, if any
- ETX
- crc
-
- As before, the CRC is a two-byte CRC of everything after the signal and
- before the ETX, and is sent high-byte first.
-
- The types of blocks which may be transmitted are:
-
- Mnemonic Value Meaning
- ======= ===== =======
- STX 02h Chat text to be displayed. Data contains text.
- EM 19h End chat session.
- GS 1Dh Receive files. Data contains filenames.
- ESC 1Bh Pause for local MS-DOS session.
- CR 0Dh Resume after local MS-DOS session.
- DLE 10h Requesting remote MS-DOS session.
- Denied or ended by five or more CANs (value 18h)
-
-
- Duplicate blocks (as indicated by the block number) are ignored. In any
- collision the swooner sends a NAK (hex value 15h) and tries again, while
- the swain pauses to listen.
-